<?php
namespace Pinenut\Context;

use Pinenut\Context;
/**
 * Сохраняем зависимости для текущего действия
 * Сохраняем сброс зависимостей для текущего действия
 * @author kosh
 *
 */
class Caching extends Context {
	protected $_tags = [];
	protected $_cleanTags = [];
	
	/**
	 * Добавляем для текущего запроса зависимости в список
	 * @param array $tags
	 */
	public function addTags($tags) {
		
		$current = end($this->requestsStack);
		
		foreach ((array)$tags as $tag) {
			$this->_tags[$current][] = $tag;
		} 
	}
	
	/**
	 * Возвращаю зависимости для текущего действия
	 * @return multitype:|array
	 */
	public function getTags() {
		
		$current = end($this->requestsStack);
		
		if (!isset($this->_tags[$current])) {
			return [];
		}
		
		return (array)$this->_tags[$current];
	}
	
	
	/**
	 * Возвращаю зависимости для текущего действия
	 * @return multitype:|array
	 */
	public function clearTags() {
	
		$current = end($this->requestsStack);
	
		unset($this->_tags[$current]);
	}
	
	
// 	/**
// 	 * Добавляем для текущего запроса сброс зависимостей в список
// 	 * @param array $tags
// 	 */
// 	public function addCleanTags($tags) {
	
// 		$current = end($this->requestsStack);
	
// 		foreach ((array)$tags as $tag) {
// 			$this->_cleanTags[$current][] = $tag;
// 		}
// 	}
	
// 	/**
// 	 * Возвращаю сброс зависимостей для текущего действия
// 	 * @return multitype:|array
// 	 */
// 	public function getCleanTags() {
	
// 		$current = end($this->requestsStack);
	
// 		if (!isset($this->_cleanTags[$current])) {
// 			return [];
// 		}
	
// 		return (array)$this->_cleanTags[$current];
// 	}
	
}